#ifndef EGG_TRANSFORM3D_H
#define EGG_TRANSFORM3D_H

#include "Actor.h"

namespace egg{

    class TransformActor : public Actor{
    public:
        TransformActor();
        void onUpdateTransform();
        void translate(const vec3& _dist,TransformSpace _ts);
        void setPosition(const vec3& _pos,TransformSpace _ts);
        void rotate(float _deg,const vec3& _axis,TransformSpace _ts);
        vec4 getWorldPosition();
        const mat4& getLocal2WorldMatrix();
        const mat4& getLocal2ParentMatrix();
    protected:
        bool mScaled;
        vec3 mScale;
        vec3 mPosition;
        quat mOrientation;
        mat4 mLocal2WorldMatrix;
        mat4 mLocal2ParentMatrix;
    };

}

#endif